<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!-- Copyright 1997 The Open Group, All Rights Reserved -->
<title>calloc</title>
</head><body bgcolor=white>
<center>
<font size=2>
The Single UNIX &reg; Specification, Version 2<br>
Copyright &copy; 1997 The Open Group

</font></center><hr size=2 noshade>
<h4><a name = "tag_000_001_341">&nbsp;</a>NAME</h4><blockquote>
calloc - a memory allocator
</blockquote><h4><a name = "tag_000_001_342">&nbsp;</a>SYNOPSIS</h4><blockquote>
<pre><code>

#include &lt;<a href="stdlib.h.html">stdlib.h</a>&gt;

void *calloc(size_t <i>nelem</i>, size_t <i>elsize</i>);
</code>
</pre>
</blockquote><h4><a name = "tag_000_001_343">&nbsp;</a>DESCRIPTION</h4><blockquote>
The
<i>calloc()</i>
function allocates unused space for an array of
<i>nelem</i>
elements each of whose size in bytes is
<i>elsize</i>.
The space is initialised to all bits 0.
<p>
The order and contiguity of storage allocated by successive calls
to
<i>calloc()</i>
is unspecified.
The pointer returned if the allocation succeeds is suitably
aligned so that it may be assigned to a pointer to any type of
object and then used to access such an object or an array of such
objects in the space
allocated (until the space is explicitly freed or reallocated).
Each such allocation will yield a pointer to an object disjoint
from any other object.
The pointer returned points to the start (lowest byte address) of
the allocated space.
If the space cannot be allocated, a null pointer is returned.
If the size of the space requested is 0, the behaviour is
implementation-dependent; the value returned will be either a null
pointer or a unique pointer.
</blockquote><h4><a name = "tag_000_001_344">&nbsp;</a>RETURN VALUE</h4><blockquote>
Upon successful completion with both
<i>nelem</i>
and
<i>elsize</i>
non-zero,
<i>calloc()</i>
returns a pointer to the allocated space.
If either
<i>nelem</i>
or
<i>elsize</i>
is 0, then either a null pointer or a unique pointer
value that can be successfully passed to
<i><a href="free.html">free()</a></i>
is returned.
Otherwise, it returns a null pointer
and sets
<i>errno</i>
to indicate the error.
</blockquote><h4><a name = "tag_000_001_345">&nbsp;</a>ERRORS</h4><blockquote>
The
<i>calloc()</i>
function will fail if:
<br>
<dl compact>

<dt>[ENOMEM]<dd>
Insufficient memory is available.

</dl>
</blockquote><h4><a name = "tag_000_001_346">&nbsp;</a>EXAMPLES</h4><blockquote>
None.
</blockquote><h4><a name = "tag_000_001_347">&nbsp;</a>APPLICATION USAGE</h4><blockquote>
There is now no requirement for the implementation to support
the inclusion of
<i>&lt;malloc.h&gt;</i>.
</blockquote><h4><a name = "tag_000_001_348">&nbsp;</a>FUTURE DIRECTIONS</h4><blockquote>
None.
</blockquote><h4><a name = "tag_000_001_349">&nbsp;</a>SEE ALSO</h4><blockquote>
<i><a href="free.html">free()</a></i>,
<i><a href="malloc.html">malloc()</a></i>,
<i><a href="realloc.html">realloc()</a></i>,
<i><a href="stdlib.h.html">&lt;stdlib.h&gt;</a></i>.
</blockquote><h4>DERIVATION</h4><blockquote>
Derived from Issue 1 of the SVID.
</blockquote><hr size=2 noshade>
<center><font size=2>
UNIX &reg; is a registered Trademark of The Open Group.<br>
Copyright &copy; 1997 The Open Group
<br> [ <a href="../index.html">Main Index</a> | <a href="../xshix.html">XSH</a> | <a href="../xcuix.html">XCU</a> | <a href="../xbdix.html">XBD</a> | <a href="../cursesix.html">XCURSES</a> | <a href="../xnsix.html">XNS</a> ]

</font></center><hr size=2 noshade>
</body></html>

